www.gusucode.com > VC++ 新手写的简单客房管理系统源码程序 > VC++ 新手写的简单客房管理系统源码程序/code/tot/AskstateDialog.cpp

    // AskstateDialog.cpp : implementation file
// Download by http://www.NewXing.com

#include "stdafx.h"
#include "tot.h"
#include "AskstateDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAskstateDialog dialog


CAskstateDialog::CAskstateDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CAskstateDialog::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAskstateDialog)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT

	if(!m_dab.Open(NULL,FALSE,FALSE,"ODBC;DSN=Room"))
 {AfxMessageBox("不能打开数据库");}
  
  



}


void CAskstateDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAskstateDialog)
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAskstateDialog, CDialog)
	//{{AFX_MSG_MAP(CAskstateDialog)
	ON_BN_CLICKED(IDC_ASKSTATE, OnAskstate)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST1, OnColumnclickList1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAskstateDialog message handlers

void CAskstateDialog::OnAskstate() 
{
	// TODO: Add your control notification handler code here
m_pSet.Open();
   m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_ListCtrl.InsertColumn(0,_T("房间号"),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_ListCtrl.InsertColumn(1,_T("姓名"));
	m_ListCtrl.InsertColumn(2,_T("身份证号"));
	m_ListCtrl.InsertColumn(3,_T("性别"));
	m_ListCtrl.InsertColumn(4,_T("入住时间"));
	m_ListCtrl.InsertColumn(5,_T("住宿天数"));
    	m_ListCtrl.InsertColumn(6,_T("费用"));
	m_ListCtrl.InsertColumn(7,_T("房间级别"));
    	m_ListCtrl.InsertColumn(8,_T("备注"));
	m_ListCtrl.InsertColumn(9,_T("总人数"));

	int j;
    for(j=0;j<10;j++)
	{
	  m_ListCtrl.SetColumnWidth(j ,90);
	}
	
//显示所有记录
		int i=0;
	m_pSet.MoveFirst();
    do
	 {  
		CString s;
        s.Format("%d",m_pSet.m_roomID);
        m_ListCtrl.InsertItem(i,s,0);
		m_ListCtrl.SetItemText(i,1,m_pSet.m_name);
        
	    m_ListCtrl.SetItemText(i,2,m_pSet.m_personID);
        
        m_ListCtrl.SetItemText(i,3,m_pSet.m_sex);

         s=m_pSet.m_logtime.Format("%Y-%B-%d");
	      m_ListCtrl.SetItemText(i,4,s);

          s.Format("%d",m_pSet.m_day);
	       m_ListCtrl.SetItemText(i,5,s);
  s.Format("%d",m_pSet.m_cost);
  m_ListCtrl.SetItemText(i,6,s);

    
         m_ListCtrl.SetItemText(i,7,m_pSet.m_class);

m_ListCtrl.SetItemText(i,8,m_pSet.m_information);
s.Format("%d",m_pSet.m_people);
m_ListCtrl.SetItemText(i,9,s);
        i++;

        m_pSet.MoveNext();
		
		}  while(!m_pSet.IsEOF());
        m_pSet.MoveFirst();
		
m_pSet.Close();

}

void CAskstateDialog::OnColumnclickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	int k=pNMListView->iSubItem;
	Sort(!m_bIsAsc,k);
m_ListCtrl.DeleteAllItems();
 

//
   m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    m_ListCtrl.InsertColumn(0,_T("房间号"),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_ListCtrl.InsertColumn(1,_T("姓名"));
	m_ListCtrl.InsertColumn(2,_T("身份证号"));
	m_ListCtrl.InsertColumn(3,_T("性别"));
	m_ListCtrl.InsertColumn(4,_T("入住时间"));
	m_ListCtrl.InsertColumn(5,_T("住宿天数"));
    	m_ListCtrl.InsertColumn(6,_T("费用"));
	m_ListCtrl.InsertColumn(7,_T("房间级别"));
    	m_ListCtrl.InsertColumn(8,_T("备注"));
	m_ListCtrl.InsertColumn(9,_T("总人数"));

	int j;
    for(j=0;j<10;j++)
	{
	  m_ListCtrl.SetColumnWidth(j ,90);
	}
	
//显示所有记录
		int i=0;
	m_pSet.MoveFirst();
    do
	 {  
		CString s;
        s.Format("%d",m_pSet.m_roomID);
        m_ListCtrl.InsertItem(i,s,0);
		m_ListCtrl.SetItemText(i,1,m_pSet.m_name);
        
	    m_ListCtrl.SetItemText(i,2,m_pSet.m_personID);
        
        m_ListCtrl.SetItemText(i,3,m_pSet.m_sex);

         s=m_pSet.m_logtime.Format("%Y-%B-%d");
	      m_ListCtrl.SetItemText(i,4,s);

          s.Format("%d",m_pSet.m_day);
	       m_ListCtrl.SetItemText(i,5,s);
  s.Format("%d",m_pSet.m_cost);
  m_ListCtrl.SetItemText(i,6,s);

    
         m_ListCtrl.SetItemText(i,7,m_pSet.m_class);

m_ListCtrl.SetItemText(i,8,m_pSet.m_information);
s.Format("%d",m_pSet.m_people);
m_ListCtrl.SetItemText(i,9,s);
        i++;

        m_pSet.MoveNext();
		
		}  while(!m_pSet.IsEOF());

m_pSet.Close();

//

	*pResult = 0;
}

void CAskstateDialog::Sort(BOOL isAsc, int secol)
{
	 m_pSet.Open();
	CODBCFieldInfo fieldInfo;
	m_pSet.GetODBCFieldInfo(secol,fieldInfo);
	if(isAsc)
	{
		m_pSet.m_strSort=fieldInfo.m_strName+" ASC";
       m_bIsAsc=TRUE;
	}
	else
	{
		m_pSet.m_strSort=fieldInfo.m_strName+" DESC";
		m_bIsAsc=FALSE;
	}
	m_pSet.Requery();


}

//DEL CString CAskstateDialog::Select()
//DEL {
//DEL  CString str;
//DEL      str.Format("%sRoom",m_Getstring);
//DEL 	 m_pSet.Open(AFX_DB_USE_DEFAULT_TYPE,str);
//DEL 
//DEL 	 return m_Getstring;
//DEL }